home *** CD-ROM | disk | FTP | other *** search
/ MacHack 1997 / MacHack 1997.toast / Hacks / Hacks ’96 / FinderFlocks / Shell / main.cp < prev    next >
Text File  |  1996-06-23  |  2KB  |  94 lines

  1. #include    "Shell.h"
  2. #include    "CFlock.h"
  3. #include    "FlockDrawing.h"
  4. #include    "FinderFun.h"
  5.  
  6.  
  7. Boolean            gDoneFlag = false;
  8. RgnHandle        gWorldRgn = NewRgn();
  9.  
  10. // finder stuff
  11. long            gNumItems = 0;
  12. Handle            gIcons[kMaxBoids];
  13. Handle            gMasks[kMaxBoids];
  14. Point            gPositions[kMaxBoids];
  15. Rect            gWindowRect;
  16. long            gWindowView;
  17.  
  18. // The global flock
  19. CFlock    *gTheFlock;
  20.  
  21. void    InitParamBlock(void);
  22.  
  23. void main (void)
  24. {
  25.        EventRecord        theEvent;
  26.     CursHandle        Curs;
  27.     short            err;
  28.     unsigned long    seed;
  29.     long            dum;
  30.     
  31.     FlushEvents (everyEvent - diskMask, 0 );
  32.     MaxApplZone();
  33.     InitGraf (&qd.thePort);
  34.     InitFonts ();
  35.     InitWindows ();
  36.     InitMenus ();
  37.     TEInit ();
  38.     InitDialogs (nil);
  39.     InitCursor ();
  40.  
  41.     /* Make a buncha Master pointers  */
  42.     
  43.      MoreMasters();
  44.      MoreMasters();
  45.      MoreMasters();
  46.      MoreMasters();
  47.      MoreMasters();
  48.      MoreMasters();
  49.      MoreMasters();
  50.      MoreMasters(); // Enough? :-)
  51.         
  52.     Curs = GetCursor(watchCursor);
  53.     SetCursor(*Curs);
  54.     
  55.     // Get finder junk
  56.     err = GatherFinderInfo(kMaxBoids);
  57.     if(err)
  58.         ExitToShell();
  59.  
  60.     // Set up drawing to use Draw Sprocket. Also sets up the
  61.     // world region.
  62.      err = SetUpDrawing(gWorldRgn);
  63.     if(err)
  64.         ExitToShell();
  65.     
  66.     /* Reset random number generator  */
  67.     GetDateTime(&seed);
  68.     qd.randSeed = seed;
  69.     
  70.     // OK, make the Flock 
  71.     gTheFlock = (CFlock *)(new CFlock)->InitFlock(gWorldRgn);
  72.     SetCursor(&qd.arrow);
  73.         
  74.     if(gTheFlock != nil)
  75.     {
  76.         while(!gDoneFlag)
  77.         {
  78.             WaitNextEvent(everyEvent, &theEvent, 0, nil);
  79.             DoEvent(&theEvent);
  80.         }
  81.         // close down flock
  82.         gTheFlock->KillFlock(gWorldRgn);
  83.         delete gTheFlock;
  84.         gTheFlock = nil;
  85.     
  86.     }
  87.     else SysBeep(10);
  88.  
  89.     
  90.     // Close down Draw Sprocket
  91.     err = CloseDownDrawing();
  92. }
  93.  
  94.